﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using BattleCity;
using Fiuba.Algo3.Titiritero.Vista;
using Fiuba.Algo3.Titiritero;
using LibreriaDeClases;
namespace BattleCity
{
    public class TanqueGrizzlyBattle : TanquePC
    {
        //Atributos
        private Point ubicacionEnemigo;
        IDireccion direccion = new Izquierda();

        //Constructor
        public TanqueGrizzlyBattle()
        {
            this.energia = 100;
            this.Velocidad = 4;
            this.arma = new Ametralladora();
            this.nombre = "TanqueGrizzlyBattle";
            TanqueDestruido += new DelegadoTanque(nada);

        }
        public TanqueGrizzlyBattle(Point ubicacion)
        {
            this.Figura = new Rectangulo(ubicacion, 30, 30);
            this.energia = 100;
            this.Velocidad = 4;
            this.arma = new Ametralladora();
	        this.nombre = "TanqueGrizzlyBattle";
            TanqueDestruido += new DelegadoTanque(nada);
        }

        //Metodos
        override public int getPuntos()
        {
            return 20;
        }
        protected Point getUbicacionEnemigo()
        {

            ubicacionEnemigo = TanqueUser.getTanqueUser().Figura.getUbicacion();

            return ubicacionEnemigo;
        }
        override protected IDireccion DireccionAvanzar()
        {
                if ((this.Figura.getUbicacion().X) < (this.getUbicacionEnemigo().X))
                {
                    this.direccion = new Derecha();
                }
                else if (this.Figura.getUbicacion().Y > (this.getUbicacionEnemigo().Y))
                {
                    this.direccion = new Arriba();
                }
                else if (this.Figura.getUbicacion().Y < (this.getUbicacionEnemigo().Y))
                {
                    this.direccion = new Abajo();
                }
                else 
                {
                    this.direccion = new Izquierda();
                }
                return this.direccion;
        }


       override protected IDireccion DireccionRetroceder()
        {
            if (direccion.EsAbajo())
            {
                return new Arriba();
            }
            else if (direccion.EsArriba())
            {
                return new Abajo();

            }
            else if (direccion.EsIzquierda())
            {
                return new Derecha();

            }
            else
            {
                return new Izquierda();
            }
        }
    }
}
